package router

import (
	"github.com/gin-gonic/gin"
	"openapi.itspire.cn/app/api"
	"openapi.itspire.cn/middleware"
)

func ApiRouter() *gin.Engine  {
	var r *gin.Engine
	// 创建一个不包含中间件的路由器
	r = gin.New()
	// 使用 Access 中间件
	r.Use(middleware.Access())
	// 使用 Global 中间件
	r.Use(middleware.Global())
	// 使用 Logger 中间件
	r.Use(middleware.Logger())
	// 使用 Recovery 中间件
	r.Use(middleware.Recovery())
	// 使用 Token 中间件
	r.Use(middleware.Token())

	// 具体路由
	r.POST("/login", api.Login)

	r.GET("/configs", api.Config)

	article := r.Group("articles")
	{
		article.GET("", api.ArticleList)
		article.GET(":id", api.ArticleInfo)
	}
	r.GET("/articlesHot", api.ArticleHot)
	r.GET("/articlesNew", api.ArticleNew)
	r.GET("/articlesSearch", api.ArticleSearch)

	r.GET("/category", api.CategoryList)
	r.GET("/category/:id", api.CategoryArticle)

	r.GET("/comments", api.CommentList)
	r.GET("/commentsNew", api.CommentNew)
	r.POST("/comments", api.CommentCreate)

	r.GET("/linksApply", api.LinkApplyList)
	r.GET("/links", api.LinkList)
	r.POST("/links", api.LinkCreate)
	r.GET("/linksApplyStatus", api.LinkApplyStatus)

	r.POST("/visits", api.VisitCreate)

	r.GET("/labels", api.LabelList)

	r.GET("/projects", api.ProjectList)

	return r
}

